nginx强制下载txt等文件

您所在的位置:网站首页 强制协议 txt nginx强制下载txt等文件

nginx强制下载txt等文件

2024-07-02 14:13| 来源: 网络整理| 查看: 265

                                                  nginx强制下载txt等文件

当前的浏览器能够识别文件格式,如果浏览器本身能够解析就会默认打开,如果不能解析就会下载该文件。比如txt文件就直接被解析,还有其他文件也是一样。

那么使用nginx做资源服务器的时候,如何强制下载文件呢?

当前的nginx文件路径配置如下:

添加头信息Content-Disposition "attachment;"会使浏览器强制下载:

if ($request_filename ~* ^.*?\.(txt|pdf|doc|xls)$){ add_header Content-Disposition "attachment;"; }

当然,也可以直接加头而不进行判断的:

add_header Content-Disposition "attachment;";

测试:txt文件可以直接下载,在IE浏览器测试也是没有问题的

不管mime类型是什么,比如人工把图片的mime类型设置为octet-stream,如果浏览器认识文件后缀的话,仍然会在浏览器中打开图片,IE浏览器够垃圾的吧?

解决方案:在响应的http头添加:Content-Disposition: attachment; filename=文件名

add_header Content-Disposition "attachment; filename=$1";

使用到了正则表达式,捕获请求的文件名。

需要注意nginx的location优先级,首先是=,然后是^~,最后才是~。

这样,IE浏览器就会忽略掉原mime类型,提示用户把文件保存到本地。

 

 

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3